﻿using System;
using System.Collections.Generic;

namespace TeF.Runner
{
    internal interface ITestEntityParentOfT<TTestEntityParent, TTestEntityChild> : ITestEntity, IDisposable
        where TTestEntityParent : class, ITestEntityParentOfT<TTestEntityParent, TTestEntityChild>
        where TTestEntityChild : class, ITestEntityChildOfT<TTestEntityParent, TTestEntityChild>
    {
        IEnumerable<TTestEntityChild> Children { get; }

        void AddChild(TTestEntityChild child);

        void SetState(TestState state);

        IEnumerable<Test> GetTestsToRun();
    }
}
